// fn.bind(ctx, ...params) => function () {return fn.call(ctx, ...params)}

Function.prototype._bind = function (ctx, ...outs) {
  var self = this;
  return function (...inners) {
    return self.apply(ctx, [...outs, ...inners])
  };
};
var sayHi = sayHello.bind(person)
console.log('原生bind--', sayHi(20))
var sayHi2 = sayHello._bind(person)
console.log('手动实现bind方法', sayHi2(21))